<!doctype html>
<html lang="zh-CN">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>程序员简历 - 模板</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  <style>
    :root {
      --primary: #2563eb;
      --primary-dark: #1d4ed8;
      --secondary: #7c3aed;
      --bg: #f8fafc;
      --card: #ffffff;
      --muted: #64748b;
      --muted-light: #94a3b8;
      --accent: #0f62fe;
      --glass: rgba(37, 99, 235, 0.08);
      --max-width: 1000px;
      --shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
      --shadow-hover: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
      --radius: 16px;
      --transition: all 0.3s ease;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html,
    body {
      height: 100%;
      background: var(--bg);
      color: #0f172a;
      line-height: 1.6;
    }

    body {
      padding: 20px;
      display: flex;
      justify-content: center;
      align-items: flex-start;
      min-height: 100vh;
    }

    .wrap {
      max-width: var(--max-width);
      width: 100%;
      margin: 20px auto;
      padding: 20px;
    }

    .card {
      display: flex;
      gap: 24px;
      background: var(--card);
      box-shadow: var(--shadow);
      border-radius: var(--radius);
      overflow: hidden;
      transition: var(--transition);
    }

    .card:hover {
      box-shadow: var(--shadow-hover);
      transform: translateY(-5px);
    }

    /* 左栏样式 */
    .aside {
      width: 320px;
      padding: 32px 24px;
      background: linear-gradient(180deg, var(--glass), transparent);
      border-right: 1px solid rgba(15, 23, 42, 0.06);
      position: relative;
      overflow: hidden;
    }

    .aside::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 4px;
      background: linear-gradient(90deg, var(--primary), var(--secondary));
    }

    .avatar-container {
      display: flex;
      align-items: center;
      gap: 16px;
      margin-bottom: 24px;
    }

    .avatar {
      width: 100px;
      height: 100px;
      border-radius: 16px;
      overflow: hidden;
      background: linear-gradient(135deg, var(--primary), var(--secondary));
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-weight: 700;
      font-size: 32px;
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    }

    .name {
      font-size: 22px;
      font-weight: 700;
      color: #0f172a;
    }

    .title {
      font-size: 14px;
      color: var(--muted);
      margin-top: 4px;
      font-weight: 500;
    }

    .contact {
      margin-top: 24px;
      font-size: 14px;
    }

    .contact-item {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 12px;
      color: var(--muted);
      transition: var(--transition);
    }

    .contact-item:hover {
      color: var(--primary);
    }

    .contact-item a {
      color: inherit;
      text-decoration: none;
    }

    .contact-icon {
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(37, 99, 235, 0.1);
      border-radius: 6px;
      color: var(--primary);
    }

    .section {
      margin-top: 28px;
    }

    .section h3 {
      font-size: 14px;
      margin: 0 0 14px 0;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: 1px;
      font-weight: 600;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .section h3::before {
      content: '';
      display: inline-block;
      width: 16px;
      height: 16px;
      background: var(--primary);
      border-radius: 4px;
    }

    .skill {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .chip {
      background: #f1f5f9;
      border-radius: 20px;
      padding: 6px 14px;
      font-size: 13px;
      color: #334155;
      font-weight: 500;
      transition: var(--transition);
    }

    .chip:hover {
      background: var(--primary);
      color: white;
      transform: translateY(-2px);
    }

    .language-item,
    .education-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 8px;
      font-size: 14px;
    }

    .language-name,
    .education-name {
      font-weight: 500;
    }

    .language-level,
    .education-period {
      color: var(--muted);
      font-size: 13px;
    }

    /* 主体样式 */
    .main {
      flex: 1;
      padding: 32px;
    }

    .headline {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 12px;
      padding-bottom: 20px;
      border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    }

    .headline h1 {
      margin: 0;
      font-size: 28px;
      font-weight: 800;
      background: linear-gradient(90deg, var(--primary), var(--secondary));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .headline-subtitle {
      color: var(--muted);
      margin-top: 8px;
      font-size: 15px;
      max-width: 500px;
    }

    .update-date {
      text-align: right;
      color: var(--muted);
      font-size: 13px;
      background: rgba(0, 0, 0, 0.04);
      padding: 6px 12px;
      border-radius: 20px;
    }

    .block {
      margin-top: 32px;
    }

    .block h3 {
      font-size: 18px;
      margin-bottom: 16px;
      color: #0f172a;
      font-weight: 700;
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .block h3::before {
      content: '';
      display: inline-block;
      width: 6px;
      height: 6px;
      background: var(--primary);
      border-radius: 50%;
    }

    .summary {
      color: #334155;
      line-height: 1.7;
      font-size: 15px;
    }

    .job {
      padding: 20px;
      border-radius: 12px;
      background: #fbfdff;
      border: 1px solid rgba(15, 23, 42, 0.05);
      margin-bottom: 16px;
      transition: var(--transition);
    }

    .job:hover {
      transform: translateY(-3px);
      box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .job h4 {
      margin: 0;
      font-size: 17px;
      font-weight: 600;
      color: #0f172a;
    }

    .meta {
      font-size: 14px;
      color: var(--muted);
      margin-top: 6px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .meta::before {
      content: '•';
      margin-right: 4px;
    }

    .bullets {
      margin-top: 12px;
      padding-left: 20px;
    }

    .bullets li {
      margin-bottom: 8px;
      font-size: 14px;
      color: #334155;
      position: relative;
    }

    .bullets li::marker {
      color: var(--primary);
    }

    .project-list {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 16px;
    }

    .project {
      padding: 18px;
      border-radius: 12px;
      border: 1px solid rgba(15, 23, 42, 0.05);
      background: #fff;
      transition: var(--transition);
      height: 100%;
    }

    .project:hover {
      transform: translateY(-3px);
      box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .project strong {
      font-size: 15px;
      color: #0f172a;
      display: block;
      margin-bottom: 8px;
    }

    .project .meta {
      margin-top: 0;
      margin-bottom: 10px;
    }

    .project-desc {
      font-size: 14px;
      color: #475569;
      line-height: 1.6;
    }

    /* 打印样式 */
    @media print {
      body {
        background: white;
        padding: 0;
      }

      .wrap {
        box-shadow: none;
        margin: 0;
        padding: 0;
      }

      .card {
        box-shadow: none;
        border-radius: 0;
        flex-direction: row;
      }

      .aside {
        border-right: 1px solid #eee;
        width: 35%;
      }

      .main {
        width: 65%;
      }

      .avatar {
        width: 80px;
        height: 80px;
        font-size: 24px;
      }

      .card,
      .job,
      .project {
        break-inside: avoid;
      }
    }

    /* 响应式设计 */
    @media (max-width: 900px) {
      .card {
        flex-direction: column;
      }

      .aside {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid rgba(15, 23, 42, 0.06);
      }

      .main {
        padding: 24px;
      }

      .headline {
        flex-direction: column;
        gap: 16px;
      }

      .update-date {
        align-self: flex-start;
      }
    }

    @media (max-width: 600px) {
      body {
        padding: 10px;
      }

      .wrap {
        padding: 10px;
      }

      .aside,
      .main {
        padding: 20px;
      }

      .avatar-container {
        flex-direction: column;
        text-align: center;
      }

      .project-list {
        grid-template-columns: 1fr;
      }
    }

    /* 动画效果 */
    @keyframes fadeIn {
      from {
        opacity: 0;
        transform: translateY(10px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .card {
      animation: fadeIn 0.5s ease-out;
    }

    .job,
    .project {
      animation: fadeIn 0.6s ease-out;
    }
  </style>
</head>

<body>
  <div class="wrap">
    <div class="card" role="article">
      <aside class="aside" aria-label="个人信息">
        <div class="avatar-container">
          <div class="avatar">KL</div>
          <div>
            <div class="name">可 林</div>
            <div class="title">全栈工程师 · 前端/后端</div>
          </div>
        </div>

        <div class="contact section">
          <div class="contact-item">
            <div class="contact-icon"><i class="fas fa-envelope"></i></div>
            <a href="mailto:you@example.com">you@example.com</a>
          </div>
          <div class="contact-item">
            <div class="contact-icon"><i class="fas fa-phone"></i></div>
            <span>+886 912 345 678</span>
          </div>
          <div class="contact-item">
            <div class="contact-icon"><i class="fab fa-github"></i></div>
            <a href="#">github.com/yourname</a>
          </div>
          <div class="contact-item">
            <div class="contact-icon"><i class="fas fa-map-marker-alt"></i></div>
            <span>台北, 台湾</span>
          </div>
        </div>

        <div class="section">
          <h3><i class="fas fa-code"></i> 技能</h3>
          <div class="skill">
            <span class="chip">Java</span>
            <span class="chip">Spring Boot</span>
            <span class="chip">SwiftUI</span>
            <span class="chip">Vue 3</span>
            <span class="chip">Nuxt</span>
            <span class="chip">TypeScript</span>
            <span class="chip">MySQL</span>
            <span class="chip">Docker</span>
          </div>
        </div>

        <div class="section">
          <h3><i class="fas fa-language"></i> 语言</h3>
          <div class="language-item">
            <span class="language-name">中文</span>
            <span class="language-level">母语</span>
          </div>
          <div class="language-item">
            <span class="language-name">英语</span>
            <span class="language-level">流利</span>
          </div>
        </div>

        <div class="section">
          <h3><i class="fas fa-graduation-cap"></i> 教育</h3>
          <div class="education-item">
            <span class="education-name">国立某大学 · 资讯工程学士</span>
            <span class="education-period">2016 — 2020</span>
          </div>
        </div>

      </aside>

      <main class="main">
        <div class="headline">
          <div>
            <h1>可 林</h1>
            <div class="headline-subtitle">热衷于构建高质量、可维护的前后端系统与工具链，擅长将产品需求拆解为工程落地方案。</div>
          </div>
          <div class="update-date"><i class="fas fa-sync-alt"></i> 更新：2025-09-12</div>
        </div>

        <section class="block">
          <h3><i class="fas fa-user"></i> 个人简介</h3>
          <p class="summary">拥有 5+ 年互联网产品开发经验，熟悉前端工程化、组件化设计、后端微服务与自动部署流程。项目涵盖企业官网、CMS、开发者工具与移动端应用。乐于分享与持续学习。</p>
        </section>

        <section class="block">
          <h3><i class="fas fa-briefcase"></i> 工作经历</h3>

          <article class="job">
            <h4>高级软件工程师 · 某科技公司</h4>
            <div class="meta">
              <i class="far fa-calendar"></i> 2022-05 — 至今
              <i class="fas fa-map-marker-alt"></i> 台湾台北
            </div>
            <ul class="bullets">
              <li>负责公司 CMS 与静态站自动化发布系统设计与实现，支持一键发布至 GitHub Pages 并绑定自定义域名。</li>
              <li>使用 Spring Boot + Thymeleaf 构建后台管理平台，优化渲染与缓存策略，使构建速度提升 40%。</li>
              <li>主导前端组件化迁移，使用 Vue 3 + Vite 实现按需加载与首屏性能优化。</li>
            </ul>
          </article>

          <article class="job">
            <h4>前端工程师 · 互联网公司</h4>
            <div class="meta">
              <i class="far fa-calendar"></i> 2020-07 — 2022-04
              <i class="fas fa-map-marker-alt"></i> 台北
            </div>
            <ul class="bullets">
              <li>参与多个企业官网与营销页开发，负责可视化编辑器与区块化页面构建器的前端实现。</li>
              <li>构建并维护组件库（包含响应式布局系统与按钮组件），并将其封装为私有 npm 包供团队使用。</li>
              <li>使用 Node.js + Express 开发内部工具链，实现自动化部署与代码检查。</li>
            </ul>
          </article>
        </section>

        <section class="block">
          <h3><i class="fas fa-code-branch"></i> 项目经验</h3>
          <div class="project-list">
            <article class="project">
              <strong>企业官网重构</strong>
              <div class="meta"><i class="fas fa-tag"></i> 2023-04 — 2023-06</div>
              <p class="project-desc">使用 Nuxt 3 重构企业官网，实现服务端渲染与静态生成，优化 SEO 与加载速度。</p>
            </article>
            <article class="project">
              <strong>iOS 记账应用</strong>
              <div class="meta"><i class="fas fa-tag"></i> 2022-10 — 2023-01</div>
              <p class="project-desc">独立开发 SwiftUI 记账应用，支持数据可视化与 iCloud 同步，已上架 App Store。</p>
            </article>
            <article class="project">
              <strong>开发者工具 CLI</strong>
              <div class="meta"><i class="fas fa-tag"></i> 2021-08 — 2021-12</div>
              <p class="project-desc">开发命令行工具，集成脚手架、代码检查与自动化部署功能，提升团队开发效率。</p>
            </article>
          </div>
        </section>
      </main>
    </div>
  </div>
</body>

</html>